package com.clear.honghefinance.biz.modules.system.menu.domain.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * <p>
 * 创建菜单DTO
 * </p>
 */
@Getter
@Setter
public class CreateMenuDTO implements Serializable {

    /**
     * 父级菜单id
     */
    @ApiModelProperty(value = "父级菜单")
    @NotNull(message = "父级菜单不能为空")
    @Min(value = 0)
    private Integer pid;

    /**
     * 菜单名称
     */
    @ApiModelProperty(value = "菜单名称")
    @NotBlank(message = "菜单名称不能为空")
    @Size(max = 200)
    private String name;

    /**
     * 菜单路由
     */
    @ApiModelProperty(value = "菜单路由")
    @NotBlank(message = "菜单路由不能为空")
    @Size(max = 200)
    private String path;

    /**
     * 菜单组件
     */
    @ApiModelProperty(value = "菜单组件")
    @Size(max = 200)
    private String component;

    /**
     * 图标
     */
    @ApiModelProperty(value = "图标")
    @Size(max = 20)
    private String icon;

    /**
     * 是否使用布局
     */
    @ApiModelProperty(value = "是否使用布局")
    @NotNull(message = "是否使用布局不能为空")
    private Boolean layout;

    /**
     * 是否隐藏菜单
     */
    @ApiModelProperty(value = "是否隐藏菜单")
    @NotNull(message = "是否隐藏菜单不能为空")
    private Boolean hideInMenu;

    /**
     * 重定向地址
     */
    @ApiModelProperty(value = "重定向地址")
    private String redirect;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    @NotNull(message = "排序不能为空")
    private Integer sort;
}
